package org.jeecg.talentCooperation.fruit.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.talentCooperation.fruit.model.FruitCommonResultModel;
import org.jeecg.talentCooperation.fruit.model.FruitResultModel;
import org.jeecg.talentCooperation.talent.entity.TalentBasic;
import org.jeecg.talentCooperation.talent.model.TalentFruitResultModel;
import org.jeecg.talentCooperation.talent.model.TalentResultModel;

import java.util.List;

public interface FruitResultMapper extends BaseMapper<FruitResultModel> {

    List<FruitResultModel> getFruitList(Page<FruitResultModel> page, @Param("fruitResultModel") FruitResultModel fruitResultModel);

    int getFruitTotal(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<TalentFruitResultModel> getTalentGroupDataBySearchContent(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<TalentFruitResultModel> getTalentGroupDataBySearchContentOfPage(Page<TalentFruitResultModel> page, @Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitCommonResultModel> getFruitFieldGroupCount(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitCommonResultModel> getFruitDeptGroupCount(Page<FruitCommonResultModel> page, @Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<TalentBasic> getTalentBasicData(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitResultModel> getFruitChart(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<TalentResultModel> getRelatedTalentChart(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitCommonResultModel> getTalentFieldTagData(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitResultModel> getRecommendTalent(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitResultModel> getResearchFieldData(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitCommonResultModel> getMostFieldDataOfNum(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitResultModel> getAuthorDataOfHotField(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitResultModel> getAuthorDataOfTypeField(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    Page<FruitResultModel> getFieldLinkFruit(Page<FruitResultModel> page, @Param("fruitResultModel") FruitResultModel fruitResultModel);

    Page<FruitResultModel> getHotFruit(Page<FruitResultModel> page, @Param("fruitResultModel") FruitResultModel fruitResultModel);

    Page<FruitResultModel> getViewFruitLog(Page<FruitResultModel> page, FruitResultModel fruitResultModel);

    List<FruitCommonResultModel> getFruitTagByField(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<FruitResultModel> getFruitWordCloud(@Param("fruitResultModel") FruitResultModel fruitResultModel);

    List<TalentFruitResultModel> getTalentDataBySearchContent(Page<TalentFruitResultModel> page, FruitResultModel fruitResultModel);

    List<String> getAuthorIdByCondition(@Param("fruitResultModel") FruitResultModel fruitResultModel);
}
